
public class SlotCartilla {

	public int jugadoPor;
	public Resultado[] resultados;
	float x;
	float y;
	int desidedX;
	int desidedY;
	int maxHeight;
	int ganados;
	int perdidos;
	int totales;
	
	SlotCartilla(Resultado[] resultados, int jugadoPor)
	{
		this.resultados = resultados;
		this.jugadoPor = jugadoPor; 
	}
	
	void draw(int fecha)
	{
		 drawSparkLines(resultados,20,(int)y, fecha );	
		 String nombre = "";
		 if(SparkLines.equipos.containsKey(jugadoPor)) nombre = ((Equipo)SparkLines.equipos.get(jugadoPor)).nombre;
     	 Gui.parent.text(nombre,40+x+(resultados.length+2)*(Config.SparkHorizontalSeparation+Config.SparkWidth),y);  
	}
	
	  public int drawSparkLines(Resultado[] r, int x, int y, int fecha)
	  {	  	  
		  Gui.parent.rectMode(Gui.parent.CORNER);
		  int maxDiferencia = 0;
		  for(int i=0; i<19;i++)
		  {
			  int c = getColorFromPointsDelta(r[i].diferencia, i<=fecha ? 255 : 10 );
			  int height = -Math.abs(r[i].diferencia)*Config.SparkHeightPerPoint;
			  if (Math.abs(height)>maxDiferencia) maxDiferencia = Math.abs(height);
			  Gui.parent.stroke(c); 
			  Gui.parent.fill(c);
			  Gui.parent.rect(x+i*(Config.SparkWidth+Config.SparkHorizontalSeparation),y,Config.SparkWidth,height);
		  }
		  
		  Gui.parent.fill(Gui.parent.color(0,0,255));
	      Gui.parent.text(""+ganados,15+x+r.length*(Config.SparkWidth+Config.SparkHorizontalSeparation),y-5); 
		  Gui.parent.fill(Gui.parent.color(255,0,0));
	      Gui.parent.text(""+perdidos,25+x+r.length*(Config.SparkWidth+Config.SparkHorizontalSeparation),y+5); 
		  Gui.parent.fill(Gui.parent.color(150,150,150));
	      Gui.parent.text(""+(totales-perdidos-ganados),25+x+r.length*(Config.SparkWidth+Config.SparkHorizontalSeparation),y-5); 
		   
		  return maxDiferencia;
	  }	
	  
	  public void calculateMaxHeight()
	  {
		  int maxh=0;
		  int minh=0;

		  
		  for(int i=0; i<resultados.length;i++)
		  {
			  int height = resultados[i].diferencia*Config.SparkHeightPerPoint;
			  if (Math.abs(height)>maxh) maxh = Math.abs(height);
			  if (Math.abs(height)<minh) minh = Math.abs(height);
		  }		  
		  maxHeight=Math.abs(maxh)+Math.abs(minh);
	  }
	  
	  void calculateResumen(int fecha)
	  {
		  totales=0;
		  ganados=0;
		  perdidos=0;
		for(int i=0; i<=fecha; i++){
			if(resultados[i].diferencia>0) ganados++;
			else if(resultados[i].diferencia<0) perdidos++;
			totales++;
		}
	  }

	  public int getColorFromPointsDelta(int diferencia, int alpha)
	  {
		  if(diferencia>=0)
			  return Gui.parent.color(0,0,100+50*diferencia, alpha);
		  else
			  return Gui.parent.color(100-50*diferencia,0,0,alpha);
	  }
	  
	  void drawTooltip()
	  {
		  for(int i=0; i<resultados.length;i++)
		  {
			  float bx = 20+x+i*(Config.SparkWidth+Config.SparkHorizontalSeparation);
			  int height = Math.abs(4)*Config.SparkHeightPerPoint;
			  float by = y-height;
			  
			  if(Gui.parent.mouseX>=bx && Gui.parent.mouseX <= bx+Config.SparkWidth && Gui.parent.mouseY>=by && Gui.parent.mouseY<=by+height)
			  {
			      Gui.parent.stroke(Gui.parent.color(200,200,200));	  
			      Gui.parent.fill(Gui.parent.color(255,255,255));	  
				  Gui.parent.rect(Gui.parent.mouseX+10, Gui.parent.mouseY,Math.max(textLenght(resultados[i].arbitro), textLenght(resultados[i].nombre))+20,60);	
			      Gui.parent.fill(Gui.parent.color(150,150,150));	  
			      Gui.parent.text(resultados[i].nombre, Gui.parent.mouseX+20, Gui.parent.mouseY+15); 
			      Gui.parent.text(resultados[i].golesA + "-"+ resultados[i].golesB, Gui.parent.mouseX+20, Gui.parent.mouseY+30); 
			      Gui.parent.text(resultados[i].arbitro, Gui.parent.mouseX+20, Gui.parent.mouseY+48); 
			  }
		  }
	  }
		  
		  int textLenght(String texto)
		  {
			  int lenght = 0;
			  for(int i=0; i<texto.length(); i++)
			  {
				  lenght +=SparkLines.font.width(texto.charAt(i))*SparkLines.font.size;
			  }
			  return lenght;
		  }	  
}
